/**
 * 区域bo
 */
export interface SysRegionBO {
  /**
   * 中心纬度
   */
  centerLat?: number;
  /**
   * 中心经度
   */
  centerLng?: number;
  /**
   * 主键
   */
  id?: string;
  /**
   * 级别，1:区域；2:省；3:市；4:区县
   */
  level?: number;
  /**
   * 全路径名称
   */
  mergerName?: string;
  /**
   * 父节点主键
   */
  parentId?: string;
  /**
   * 区域编码
   */
  regionCode?: string;
  /**
   * 区域名称
   */
  regionName?: string;
  /**
   * 是否展示
   */
  show?: boolean;
  /**
   * 虚拟行政编码，解决某些地区不一致问题
   */
  virtualCode?: string;
  owningRegion?: string
}

/**
 * 响应信息
 */
export interface Response {
  /**
   * 状态码
   */
  code?: number;
  data?: null | SysRegionVo;
  /**
   * 返回消息
   */
  msg?: string;
}

export interface SysRegionVo {
  /**
   * 中心纬度
   */
  centerLat?: number;
  /**
   * 中心经度
   */
  centerLng?: number;
  /**
   * 主键
   */
  id?: string;
  /**
   * 级别，1:区域；2:省；3:市；4:区县
   */
  level?: number;
  /**
   * 全路径名称
   */
  mergerName?: string;
  /**
   * 父节点主键
   */
  parentId?: string;
  /**
   * 区域编码
   */
  regionCode?: string;
  /**
   * 区域名称
   */
  regionName?: string;
  /**
   * 是否展示
   */
  show?: boolean;
  /**
   * 虚拟行政编码，解决某些地区不一致问题
   */
  virtualCode?: string;
}

export interface PageData {
  regionBO?: SysRegionBO;
  dialogStatus?: any;
  defaultRegionTree?: SysRegionVo[],
  backRegionTree: SysRegionVo[],
  rules?: any
}

/**
 * 区域选择视图对象
 */
export interface RegionSelectionVo {
  checkedIds: string[];
  checkedSonIds: string[];
  tree: RegionNode[];
}

/**
 * 区域树节点
 */
export interface RegionNode {
  children: RegionNode[];
  id: string;
  label: string;
  parentId: string;
}
